﻿#pragma once

#include <QGraphicsRectItem>
#include <QtGui>
#include <frame.h>

class frame;

/*! \class toggleRect
    \brief Класс графического переключателя.
*/
class toggleRect :
	public QGraphicsRectItem
{
public:
		
	/*! Конструктор с параметрами
		\param parent Указатель на родительский элемент
		\param scene Указатель на графическую сцену
	*/
	toggleRect(frame *parent, QGraphicsScene *scene);
	~toggleRect(void);

	/*! Установка заполнения прямоугольника
	*/
	inline void setFill(){flag = true;}

	/*! Снятие заполнения прямоугольника
	*/
	inline void unsetFill(){flag = false;}

	/*! Установка назначения переключателя
	*/
	inline void setPurpose(short int i){myPurpose = i;}

	/*! Получение значения флага состояния переключателя
		\return Значение флага
	*/
	inline bool getFlag(){return flag;}

	/*! Получение значения назначения переключателя
		\return Значение состояния
	*/
	inline short int purpose(){return myPurpose;}

private:
	bool flag;										//!< Состояние переключателя
	short int myPurpose;							//!< Назначение переключателя
	frame *f;										//!< Указатель на рамку

	/*! Функция отрисовки переключателя. Переопределена для изменения цвета прямоугольника.
	*/
	void paint ( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0 ); 
	
protected:

	void mousePressEvent ( QGraphicsSceneMouseEvent * event );	//!< Переопределение стандартного обработчика события нажатие кнопок мыши
};
